#include <stdio.h>

void int2bin(unsigned int num)
{
    unsigned int mask = 0x80000000;//掩码

    for(int i = 0; i < 32; i++)
    {
        if((num & mask) == mask)
        {
            printf("1");
        }
        else
        {
            printf("0");
        }
        if((i+1) % 4 == 0)
        {
            printf(" ");
        }
        num = num << 1;
    }
    printf("\n");
}

int main()
{
    int num;
    int count = 0;

    printf("Please input num:\n");
    scanf("%d",&num);

    //计算一个整型数的二进制形式里有几个1
    // while(num != 0)
    // {
    //     if((num & 1) == 1)
    //     count++;
    //     num = num >> 1; 
    // }

    // printf("count = %d\n",count);


    //输入一个整数，输出这个数的32位二进制数
    int2bin(num);

    //输出一个32位整型数字的n-m位
    int n,m;
    int mask = ~0;
    mask = mask >> (32-(n-m+1) );
    mask = mask << m;
    return 0;

    //用~不使用中间变量，直接互换两个数的值
    int a = 5, b = 6;
    a = a ^ b;
    b = a ^ b;
    a = a ^ b;
}